package com.itcam.phaseiii.lambda_.test;

/**
 * Author:Cammy.Wu
 * Date:2024-04-29
 * Description:
 */

public class LambdaTest2 {

    public static void main(String[] args) {
        useStringHandler(new StringHandler() {
            @Override
            public void printMessage(String msg) {
                System.out.println("匿名内部类打印：" + msg);
            }
        });

        /**
         * 参数类型可以省略不写
         * 如果只有一个参数，参数类型可以省略，同时()也可以省略
         * 如果Lambda表达式的方法体代码只有一行代码
         *   ☆ 可以省略大括号不写，同时要省略分号
         *      此时，如果这行代码时return语句，必须省略return不写，同时也必须省略";"不写
         */

        useStringHandler(msg -> {
            System.out.println("Lambda表达式：" + msg);
        });
    }

    public static void useStringHandler(StringHandler stringHandler) {
        stringHandler.printMessage("itcam");
    }
}

interface StringHandler {
    void printMessage(String msg);
}
